home *** CD-ROM | disk | FTP | other *** search
/ Chip 1998 September / CHIP Eylül 1998.iso / Slackwar / docs / linux-2.0.34 / cdrom / cdu31a < prev    next >
Encoding:
Text File  |  1996-04-11  |  7.4 KB  |  197 lines

  1.  
  2.         CDU31A/CDU33A Driver Info
  3.         -------------------------
  4.  
  5. Information on the Sony CDU31A/CDU33A CDROM driver for the Linux
  6. kernel.
  7.  
  8.    Corey Minyard (minyard@metronet.com)
  9.   
  10.    Colossians 3:17
  11.  
  12. Crude Table of Contents
  13. -----------------------
  14.  
  15.   Setting Up the Hardware
  16.   Configuring the Kernel
  17.   Configuring as a Module
  18.   Driver Special Features
  19.  
  20.   
  21. This device driver handles Sony CDU31A/CDU33A CDROM drives and
  22. provides a complete block-level interface as well as an ioctl()
  23. interface as specified in include/linux/cdrom.h).  With this
  24. interface, CDROMs can be accessed, standard audio CDs can be played
  25. back normally, and CD audio information can be read off the drive.
  26.  
  27. Note that this will only work for CDU31A/CDU33A drives.  Some vendors
  28. market their drives as CDU31A compatible.  They lie.  Their drives are
  29. really CDU31A hardware interface compatible (they can plug into the
  30. same card).  They are not software compatible.
  31.  
  32. Setting Up the Hardware
  33. -----------------------
  34.  
  35. The CDU31A driver in unable to safely tell if an interface card is
  36. present that it can use because the interface card does not announce
  37. its presence in any way besides placing 4 I/O locations in memory.  It
  38. used to just probe memory and attempt commands, but Linus wisely asked
  39. me to remove that because it could really screw up other hardware in
  40. the system.
  41.  
  42. Because of this, you must tell the kernel where the drive interface
  43. is, what interrupts are used, and possibly if you are on a PAS-16
  44. soundcard.
  45.  
  46. If you have the Sony CDU31A/CDU33A drive interface card, the following
  47. diagram will help you set it up.  If You have another card, you are on
  48. your own.  You need to make sure that the I/O address and interrupt is
  49. not used by another card in the system.  You will need to know the I/O
  50. address and interrupt you have set.  Note that use of interrupts is
  51. highly recommended, if possible, it really cuts down on CPU used.
  52. Unfortunately, most soundcards do not support interrupts for their
  53. CDROM interfaces.  By default, the Sony interface card comes with
  54. interrupts disabled.
  55.    
  56.         +----------+-----------------+----------------------+
  57.         |  JP1     |  34 Pin Conn    |                      |
  58.         |  JP2     +-----------------+                      |
  59.         |  JP3                                              |
  60.         |  JP4                                              |
  61.         |                                                   +--+
  62.         |                                                   |  +-+
  63.         |                                                   |  | |  External
  64.         |                                                   |  | |  Connector
  65.         |                                                   |  | |
  66.         |                                                   |  +-+
  67.         |                                                   +--+
  68.         |                                                   |
  69.         |                                          +--------+
  70.         |                                          |
  71.         +------------------------------------------+
  72.    
  73.       JP1 sets the Base Address, using the following settings:
  74.    
  75.         Address         Pin 1           Pin 2
  76.         -------         -----           -----
  77.         0x320           Short           Short
  78.         0x330           Short           Open
  79.         0x340           Open            Short
  80.         0x360           Open            Open
  81.    
  82.       JP2 and JP3 configure the DMA channel; they must be set the same.
  83.    
  84.         DMA             Pin 1           Pin 2           Pin 3
  85.         ---             -----           -----           -----
  86.         1               On              Off             On
  87.         2               Off             On              Off
  88.         3               Off             Off             On
  89.    
  90.       JP4 Configures the IRQ:
  91.    
  92.         IRQ     Pin 1           Pin 2           Pin 3           Pin 4
  93.         ---     -----           -----           -----           -----
  94.         3       Off             Off             On              Off
  95.         4       Off             Off*            Off             On
  96.         5       On              Off             Off             Off
  97.         6       Off             On              Off             Off
  98.    
  99.                   The documentation states to set this for interrupt
  100.                   4, but I think that is a mistake.
  101.  
  102. Note that if you have another interface card, you will need to look at
  103. the documentation to find the I/O base address.  This is specified to
  104. the SLCD.SYS driver for DOS with the /B: parameter, so you can look at
  105. you DOS driver setup to find the address, if necessary.
  106.  
  107. Configuring the Kernel
  108. ----------------------
  109.  
  110. You must tell the kernel where the drive is at boot time.  This can be
  111. done at the Linux boot prompt, by using LILO, or by using Bootlin.
  112. Note that this is no substitute for HOWTOs and LILO documentation, if
  113. you are confused please read those for info on bootline configuration
  114. and LILO.
  115.  
  116. At the linux boot prompt, press the ALT key and add the following line
  117. after the boot name (you can let the kernel boot, it will tell you the
  118. default boot name while booting):
  119.  
  120.     cdu31a=<base address>,<interrupt>[,PAS]
  121.  
  122. The base address needs to have "0x" in front of it, since it is in
  123. hex.  For instance, to configure a drive at address 320 on interrupt 5,
  124. use the following:
  125.  
  126.     cdu31a=0x320,5
  127.  
  128. I use the following boot line:
  129.  
  130.     cdu31a=0x1f88,0,PAS
  131.  
  132. because I have a PAS-16 which does not support interrupt for the
  133. CDU31A interface.
  134.  
  135. Adding this as an append line at the beginning of the /etc/lilo.conf
  136. file will set it for lilo configurations.  I have the following as the
  137. first line in my lilo.conf file:
  138.  
  139.     append="cdu31a=0x1f88,0"
  140.  
  141. I'm not sure how to set up Bootlin (I have never used it), if someone
  142. would like to fill in this section please do.
  143.  
  144.  
  145. Configuring as a Module
  146. -----------------------
  147.  
  148. The driver supports loading as a module.  However, you must specify
  149. the boot address and interrupt on the boot line to insmod.  You can't
  150. use modprobe to load it, since modprobe doesn't support setting
  151. variables.
  152.  
  153. Anyway, I use the following line to load my driver as a module
  154.  
  155.   /sbin/insmod /lib/modules/`uname -r`/misc/cdu31a.o cdu31a_port=0x1f88
  156.  
  157. You can set the following variables in the driver:
  158.  
  159.   cdu31a_port=<I/O address> - sets the base I/O.  If hex, put 0x in
  160.                   front of it.  This must be specified.
  161.  
  162.   cdu31a_irq=<interrupt> - Sets the interrupt number.  Leaving this
  163.                off will turn interrupts off.
  164.  
  165.  
  166. Driver Special Features
  167. -----------------------
  168.  
  169. This section describes features beyond the normal audio and CD-ROM
  170. functions of the drive.
  171.  
  172. 2048 byte buffer mode
  173.  
  174. If a disk is mounted with -o block=2048, data is copied straight from
  175. the drive data port to the buffer.  Otherwise, the readahead buffer
  176. must be involved to hold the other 1K of data when a 1K block
  177. operation is done.  Note that with 2048 byte blocks you cannot execute
  178. files from the CD.
  179.  
  180. XA compatibility
  181.  
  182. The driver should support XA disks for both the CDU31A and CDU33A.  It
  183. does this transparently, the using program doesn't need to set it.
  184.  
  185. Multi-Session
  186.  
  187. A multi-session disk looks just like a normal disk to the user.  Just
  188. mount one normally, and all the data should be there.  A special
  189. thanks to Koen for help with this!
  190.  
  191. Raw sector I/O
  192.  
  193. Using the CDROMREADAUDIO it is possible to read raw audio and data
  194. tracks.  Both operations return 2352 bytes per sector.  On the data
  195. tracks, the first 12 bytes is not returned by the drive and the value
  196. of that data is indeterminate.
  197.